package com.xinqi.modules.prepare.video.dto.req;

import com.xinqi.common.base.dto.CommonFileDTO;
import com.xinqi.common.green.annotation.Text;
import com.xinqi.modules.prepare.prepare.enums.PrepareVideoPointTypeEnum;
import com.xinqi.common.base.dto.QuestionBaseDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 备课区互动视频环节-请求对象-新增
 *
 * @author: system
 * @date: 2023/03/19
 */
@Data
@Schema(description = "备课区互动视频环节-请求对象-新增")
public class PrepareVideoPointCreateDTO implements Serializable {

    /**
     * 备课区id
     */
    @Schema(description = "备课区id", example = "10002")
    private Long prepareId;
    /**
     * 备课区文件夹id，如果没有默认为空0
     */
    @Schema(description = "备课区文件夹id，如果没有默认为空0", example = "10001")
    private Long folderId;
    /**
     * 备课区互动课件id
     */
    @Schema(description = "备课区互动视频id", example = "")
    @NotNull(message = "互动视频id不能为空")
    private Long videoId;
    /**
     * 名称
     */
    @Text
    @Schema(description = "名称", example = "")
    private String name;
    /**
     * 帧类型
     */
    @Schema(description = "互动视频帧类型，QUESTION:试题；IMAGE:图片；DOCUMENT:文档；", example = "QUESTION")
    @NotNull(message = "互动视频帧类型不能为空")
    private PrepareVideoPointTypeEnum pointType;
    /**
     * 环节时间点
     */
    @Schema(description = "环节时间点", example = "")
    private BigDecimal pointTime;
    /**
     * 环节序号
     */
    @Schema(description = "环节序号", example = "")
    private Integer pointNumber;
    /**
     * 文件列表，根据帧类型来区分是图片还是文档
     */
    @Schema(description = "文件列表，根据帧类型来区分是图片还是文档", example = "")
    private List<CommonFileDTO> files;
    /**
     * 题目内容
     */
    @Schema(description = "题目内容", example = "")
    private List<QuestionBaseDTO> questionContent;
}
